diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 522dfc1..a9e9b30 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -550,4 +550,12 @@
 	help
 	  Support GPIO access on Kontron sl28cpld board management controllers.
 
+config SLG7XL45106_I2C_GPO
+	bool "slg7xl45106 i2c gpo expander"
+	depends on DM_GPIO
+	help
+	   Support for slg7xl45106 i2c gpo expander. It is an i2c based
+	   8-bit gpo expander, all gpo lines are controlled by writing
+	   value into data register.
+
 endif
diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
index 33f7d41..b2e78b0 100644
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
@@ -72,3 +72,4 @@
 obj-$(CONFIG_MAX7320_GPIO)	+= max7320_gpio.o
 obj-$(CONFIG_SL28CPLD_GPIO)	+= sl28cpld-gpio.o
 obj-$(CONFIG_ZYNQMP_GPIO_MODEPIN)	+= zynqmp_gpio_modepin.o
+obj-$(CONFIG_SLG7XL45106_I2C_GPO)	+= gpio_slg7xl45106.o
diff --git a/drivers/gpio/gpio_slg7xl45106.c b/drivers/gpio/gpio_slg7xl45106.c
new file mode 100644
index 0000000..2cbf748
--- /dev/null
+++ b/drivers/gpio/gpio_slg7xl45106.c
@@ -0,0 +1,115 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * slg7xl45106_i2c_gpo driver
+ *
+ * Copyright (C) 2021 Xilinx, Inc.
+ */
+
+#include <common.h>
+#include <errno.h>
+#include <asm/io.h>
+#include <asm/gpio.h>
+#include <dm.h>
+#include <i2c.h>
+#include <asm/arch/hardware.h>
+
+#define SLG7XL45106_REG		0xdb
+
+static int slg7xl45106_i2c_gpo_direction_input(struct udevice *dev,
+					       unsigned int offset)
+{
+	return 0;
+}
+
+static int slg7xl45106_i2c_gpo_xlate(struct udevice *dev,
+				     struct gpio_desc *desc,
+				     struct ofnode_phandle_args *args)
+{
+	desc->offset = (unsigned int)args->args[0];
+
+	return 0;
+}
+
+static int slg7xl45106_i2c_gpo_set_value(struct udevice *dev,
+					 unsigned int offset, int value)
+{
+	int ret;
+	u8 val;
+
+	ret = dm_i2c_read(dev, SLG7XL45106_REG, &val, 1);
+	if (ret)
+		return ret;
+
+	if (value)
+		val |= BIT(offset);
+	else
+		val &= ~BIT(offset);
+
+	return dm_i2c_write(dev, SLG7XL45106_REG, &val, 1);
+}
+
+static int slg7xl45106_i2c_gpo_direction_output(struct udevice *dev,
+						unsigned int offset, int value)
+{
+	return slg7xl45106_i2c_gpo_set_value(dev, offset, value);
+}
+
+static int slg7xl45106_i2c_gpo_get_value(struct udevice *dev,
+					 unsigned int offset)
+{
+	int ret;
+	u8 val;
+
+	ret = dm_i2c_read(dev, SLG7XL45106_REG, &val, 1);
+	if (ret)
+		return ret;
+
+	return !!(val & BIT(offset));
+}
+
+static int slg7xl45106_i2c_gpo_get_function(struct udevice *dev,
+					    unsigned int offset)
+{
+	return GPIOF_OUTPUT;
+}
+
+static const struct dm_gpio_ops slg7xl45106_i2c_gpo_ops = {
+	.direction_input = slg7xl45106_i2c_gpo_direction_input,
+	.direction_output = slg7xl45106_i2c_gpo_direction_output,
+	.get_value = slg7xl45106_i2c_gpo_get_value,
+	.set_value = slg7xl45106_i2c_gpo_set_value,
+	.get_function = slg7xl45106_i2c_gpo_get_function,
+	.xlate = slg7xl45106_i2c_gpo_xlate,
+};
+
+static int slg7xl45106_i2c_gpo_probe(struct udevice *dev)
+{
+	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
+	const void *label_ptr;
+
+	label_ptr = dev_read_prop(dev, "label", NULL);
+	if (label_ptr) {
+		uc_priv->bank_name = strdup(label_ptr);
+		if (!uc_priv->bank_name)
+			return -ENOMEM;
+	} else {
+		uc_priv->bank_name = dev->name;
+	}
+
+	uc_priv->gpio_count = 8;
+
+	return 0;
+}
+
+static const struct udevice_id slg7xl45106_i2c_gpo_ids[] = {
+	{ .compatible = "dlg,slg7xl45106",},
+	{ }
+};
+
+U_BOOT_DRIVER(slg7xl45106_i2c_gpo) = {
+	.name = "slg7xl45106_i2c_gpo",
+	.id = UCLASS_GPIO,
+	.ops = &slg7xl45106_i2c_gpo_ops,
+	.of_match = slg7xl45106_i2c_gpo_ids,
+	.probe = slg7xl45106_i2c_gpo_probe,
+};
